#ifndef __BLOCK_CONSTANS_H__
#define __BLOCK_CONSTANS_H__

#include <vector>
#include "Engine/BoundingBox.hpp"
#include "Engine/Random.hpp"
#include "Utils/Utils.h"

using namespace PocketSurvival::Engine;

namespace PocketSurvival
{
    namespace BlockConstans
    {
        // 方块的默认碰撞框
        extern std::vector<BoundingBox> defaultCollisionBoxes;

        // 附着的告示牌
        extern std::vector<BoundingBox> attachedSignCollisionBoxes[4];

        // 南瓜
        extern std::vector<BoundingBox> pumpkinCollisionBoxes[8];

        // 电池
        extern std::vector<BoundingBox> batteryCollisionBoxes;

        // 按钮
        extern std::vector<BoundingBox> buttonCollisionBoxes[6];

        // 十字坟碑
        extern std::vector<BoundingBox> cairnCollisionBoxes;

        // 篝火
        extern std::vector<BoundingBox> campfireCollisionBoxes[16];

        // 地毯
        extern std::vector<BoundingBox> carpetCollisionBoxes;

        // 电子雷管
        extern std::vector<BoundingBox> detonatorCollisionBoxes[6];

        // 木门
        extern std::vector<BoundingBox> woodenDoorCollisionBoxes[16];

        // 铁门
        extern std::vector<BoundingBox> ironDoorCollisionBoxes[16];

        // 栅栏门
        extern std::vector<BoundingBox> cellDoorCollisionBoxes[16];

        // 木围墙
        extern std::vector<BoundingBox> woodenFenceCollisionBoxes[16];

        // 石围墙
        extern std::vector<BoundingBox> stoneFenceCollisionBoxes[16];

        // 铁围墙
        extern std::vector<BoundingBox> ironFenceCollisionBoxes[16];

        // 木围墙门
        extern std::vector<BoundingBox> woodenFenceGateCollisionBoxes[16];

        // 铁围墙门
        extern std::vector<BoundingBox> ironFenceGateCollisionBoxes[16];

        // 4面LED灯
        extern std::vector<BoundingBox> fourLedCollisionBoxes[6];

        // 草皮陷阱
        extern std::vector<BoundingBox> grassTrapCollisionBoxes;

        // 墓碑
        extern std::vector<BoundingBox> gravestoneCollisionBoxes[16];

        // 小型火药桶
        extern std::vector<BoundingBox> smallGunpowderKegCollisionBoxes;

        // 中型火药桶
        extern std::vector<BoundingBox> mediumGunpowderKegCollisionBoxes;

        // 大型火药桶
        extern std::vector<BoundingBox> largeGunpowderKegCollisionBoxes;

        // 湿度计
        extern std::vector<BoundingBox> hygrometerCollisionBoxes[4];

        // 藤蔓
        extern std::vector<BoundingBox> ivyCollisionBoxes[4];

        // 南瓜灯
        extern std::vector<BoundingBox> jackOLanternCollisionBoxes;

        // 木梯子
        extern std::vector<BoundingBox> woodenLadderCollisionBoxes[4];

        // 铁梯子
        extern std::vector<BoundingBox> ironLadderCollisionBoxes[4];

        // LED灯
        extern std::vector<BoundingBox> ledCollisionBoxes[64];

        // 电灯
        extern std::vector<BoundingBox> lightbulbCollisionBoxes[6];

        // 磁铁
        extern std::vector<BoundingBox> magnetCollisionBoxes[2];

        // 运动传感器
        extern std::vector<BoundingBox> motionDetectorCollisionBoxes[6];

        // 彩色LED
        extern std::vector<BoundingBox> multicoloredLedCollisionBoxes[6];

        // 1面LED
        extern std::vector<BoundingBox> oneLedCollisionBoxes[6];

        // 光敏二极管
        extern std::vector<BoundingBox> photodiodeCollisionBoxes[6];

        // 木告示牌
        extern std::vector<BoundingBox> woodenPostedSignCollisionBoxes[16];

        // 铁告示牌
        extern std::vector<BoundingBox> ironPostedSignCollisionBoxes[16];

        // 压力板
        extern std::vector<BoundingBox> pressurePlateCollisionBoxes[16];

        // 电路门
        extern std::vector<BoundingBox> gatesCollisionBoxes[24];

        // 海胆
        extern std::vector<BoundingBox> seaUrchinCollisionBoxes[24];

        // 7段显示器
        extern std::vector<BoundingBox> sevenSegmentDisplayCollisionBoxes[4];

        // 半砖
        extern std::vector<BoundingBox> slabCollisionBoxes[2];

        // 雪
        extern std::vector<BoundingBox> snowCollisionBoxes;

        // 耕地
        extern std::vector<BoundingBox> soilCollisionBoxes;

        // 木刺陷阱
        extern std::vector<BoundingBox> spikedPlankCollisionBoxes[12];

        // 楼梯
        extern std::vector<BoundingBox> stairsCollisionBoxes[24];

        // 海星
        extern std::vector<BoundingBox> starfishCollisionBoxes[24];

        // 开关
        extern std::vector<BoundingBox> switchCollisionBoxes[12];

        // 靶
        extern std::vector<BoundingBox> TargetCollisionBoxes[4];

        // 温度计
        extern std::vector<BoundingBox> thermometerCollisionBoxes[4];

        // 火把
        extern std::vector<BoundingBox> torchCollisionBoxes[5];
        
        // 无
        extern std::vector<BoundingBox> zeroCollisionBoxes;

        // 活板门
        extern std::vector<BoundingBox> trapdoorCollisionBoxes[16];
        
        // 导线
        extern std::vector<BoundingBox> wireCollisionBoxes;






        
        



        extern Vector3 postedSignDirections[16];
    };

} // namespace PocketSurvival


#endif
